package edu.se.jai.lesson01.controller;

import edu.se.jai.lesson01.config.FeatureConfig;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import edu.se.jai.lesson01.ws.EchoWebSocketHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 指标统计控制器
 * 
 * 功能说明：
 * 1. 提供WebSocket连接和消息的实时统计
 * 2. 支持动态开启/关闭指标收集
 * 3. 通过REST API暴露监控数据
 * 
 * 学习要点：
 * - REST API设计
 * - 指标收集和统计
 * - 依赖注入和配置管理
 */
@RestController
public class MetricsController {

    private final FeatureConfig featureConfig;

    public MetricsController(FeatureConfig featureConfig) {
        this.featureConfig = featureConfig;
    }

    /**
     * 获取WebSocket指标统计
     * 
     * 实现说明：
     * 1. 检查指标功能是否开启
     * 2. 收集当前连接数和消息数
     * 3. 返回JSON格式的统计结果
     * 
     * 指标类型：
     * - connections: 当前活跃连接数
     * - messages: 累计处理消息数
     * - timestamp: 统计时间戳
     * 
     * @return 包含统计数据的Map
     */
    @GetMapping("/metrics")
    public Map<String, Object> metrics() {
        Map<String, Object> m = new HashMap<>();
        
        // 指标统计实现

        // 返回默认统计值
        m.put("connections", 0);  // 当前连接数
        m.put("messages", 0);     // 累计消息数
        m.put("timestamp", System.currentTimeMillis()); // 统计时间戳
        
        return m;
    }
}
